﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BAL.Entities;
using DigitalAnts.App_Code.BAL.Components;
using System.Data;
using VMCLibrary.RegexServiceProvider;

namespace DigitalAnts.Admin
{
	public partial class City : System.Web.UI.Page
	{
		protected void Page_Load(object sender, EventArgs e)
		{
            if (Login() == false)
            {
                Response.Redirect("~/Admin/EmployeeLogin.aspx");
            }
            else
            {
                if (!IsPostBack)
                {
                    lbltitle.Text = "Bạn đang thêm thông tin";
                    showCountryList();
                    showDropCountry();
                    showUpdateCity();
                }
            }
		}

        public bool Login()
        {
            clsEmployee obj = new clsEmployee();
            obj.UserName = Session["AdminUser"].ToString();
            obj.Role = Session["Role"].ToString();

            return clsEmployeeLoginBAL.queryEmployeeLogin(obj);
        }

        public void addNewCity()
        {
            RegexSpecificConfigManager validateUser = new RegexSpecificConfigManager();
            List<bool> val = new List<bool>();
            val.Add(validateUser.ValidateCustomUserName(txtcityname.Text.Trim()));
            if (val.IndexOf(false) >= 0) { lblmess.Text = "Dữ liệu lỗi"; }
            else{
            clsCity obj = new clsCity();
            obj.CityName = txtcityname.Text.Trim();
            if (clsCityBAL.doCheckCityExist(obj) == true)
            {
                lblmess.Text = "Tên thành phố đã tồn tại";
            }
            else
            {
                obj.CountryID = Convert.ToInt32(ddlcountry.SelectedValue);

                if (clsCityBAL.doAddNewCity(obj) == true)
                {
                    lblmess.Text = "Thêm dữ liệu thành công";
                    showCountryList();
                }
                else
                {
                    lblmess.Text = "Thêm dữ liệu thất bại";
                }
            }
            }
        }

        public void showDropCountry()
        {
            ddlcountry.DataSource = clsCountryBAL.doCountrySelectList();
            ddlcountry.DataTextField = "Country";
            ddlcountry.DataValueField = "CountryID";
            ddlcountry.DataBind();
        }

        public void showCountryList()
        {
            gvCountry.DataSource = clsCityBAL.doCitySelectList();
            gvCountry.DataBind();
        }

        protected void bttsave_Click(object sender, EventArgs e)
        {
            if (Request["CityID"] == null)
            {
                addNewCity();
            }
            else
            {
                RegexSpecificConfigManager validateUser = new RegexSpecificConfigManager();
                List<bool> val = new List<bool>();
                val.Add(validateUser.ValidateCustomUserName(txtcityname.Text.Trim()));
                if (val.IndexOf(false) >= 0) { lblmess.Text = "Dữ liệu lỗi"; }
                else{
                clsCity obj = new clsCity();
                obj.CityID = Convert.ToInt32(Request["CityID"]);
                obj.CityName = txtcityname.Text.Trim();
                obj.CountryID = Convert.ToInt32(ddlcountry.SelectedValue);
                if(clsCityBAL.doUpdateCity(obj) == true)
                {
                    lblmess.Text = "Cập nhật thông tin thành công";
                    showCountryList();
                }
                else
                {
                    lblmess.Text = "Cập nhật thông tin thất bại";
                }
                }
            }
        }

        public void showUpdateCity()
        {
            if (Request["CityID"] != null)
            {
                lbltitle.Text = "Bạn đang sửa thông tin";
                bttsave.Text = "Sửa";

                int id = Convert.ToInt32(Request["CityID"].ToString());

                clsCity obj = new clsCity();
                obj.CityID = id;
                DataTable dt = clsCityBAL.doCitySelectListById(obj);

                txtcityname.Text = dt.Rows[0]["CityName"].ToString();

                clsCountry objCountry = new clsCountry();
                objCountry.CountryID = dt.Rows[0]["CountryID"].ToString();

                ddlcountry.DataSource = clsCountryBAL.doCountrySelectList();
                ddlcountry.DataTextField = "Country";
                ddlcountry.DataValueField = "CountryID";
                ddlcountry.DataBind();
                ddlcountry.SelectedValue = clsCountryBAL.doCountrySelectListById(objCountry).Rows[0]["CountryID"].ToString();
            }
        }

        protected void gvCountry_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvCountry.PageIndex = e.NewPageIndex;
            gvCountry.DataBind();
        }
	}
}